import axios from "axios";

import router from '@router/index'


/* import { Message } from "element-ui"; */


// 创建axios，赋给变量service
// 手把手撸码前端API，地址 http://www.web-jshtml.cn/productApi


export const service = axios.create({
  baseURL: "/api",  // http://192.168.0.106:8080/devApi/  == http://www.web-jshtml.cn/productapi/productapi
  timeout: 15000,   // 超时
  // 网络请求接口，假设 5000
  // 1000 2000，
 
});
/**
 * 请求接口前，做一些数据处理（请求拦截器）
 */
service.interceptors.request.use(function (config) {
  // 在发送请求之前做些什么
  // 后台需要前端这边传相关的参数（在请求头添加参数）
  // Tokey
  // userId
  // sui
  // 业务需求
  // 最终目地不是在请求头添加参数
  if (localStorage.token) {
    config.headers.Authorization = localStorage.token
  }

  return config;
}, function (error) {
  // 对请求错误做些什么
  return Promise.reject(error);
});


/**
 * 请求接口后，返回数据进行拦截（响应拦截器）
 */
service.interceptors.response.use(function (response) {
  // 对响应数据做点什么
  let data = response.data
  // 业务需求

   
     return Promise.resolve(data);
 

}, function (error) {
  console.log("得到的错误",error.response.status);
  // 对响应错误做点什么
  if(error.response){
    switch(error.response.status){
      case 401:
        localStorage.removeItem("token")
        router.replace({ //跳转到登录页面
          path: '/login',
        });
    }
  }
  return Promise.reject(error);
});




// 几种通用请求方式封装 GET、POST、PUT、DELETE

// GET请求
export const Get = (URL, data) => service.get(URL, { params: data })
// POST请求
export const POST = (URL, data, params, config) => service.post(URL,data, { params: params, ...config });
// PUT请求
export const PUT = (URL, data, params) => service.put(URL, data, { params });
// DELETE请求
export const DELETE = (URL, data,config) => service.delete(URL, { data: data,...config});
